草庐IT

Android JSONObject 与 GSON

全部标签

java - Gson 为特定类或字段序列化 null

我想为特定字段或类序列化null。在GSON中,选项serializeNulls()适用于整个JSON。例子:classMainClass{publicStringid;publicStringname;publicTesttest;}classTest{publicStringname;publicStringvalue;}MainClassmainClass=newMainClass();mainClass.id="101"//mainClasshasnoname.Testtest=newTest();test.name="testName";test.value=null;mai

java - 序列化接口(interface)列表 GSON

我在GSON中遇到了一些奇怪的行为。如果我有以下类结构:publicinterfaceAnimal{publicvoidnothing();}publicclassCatimplementsAnimal{privateStringname;publicCat(Stringname){super();this.name=name;}publicCat(){}@Overridepublicvoidnothing(){//TODOAuto-generatedmethodstub};}publicclassDogimplementsAnimal{privateStringname;public

java - 使用 Gson 反序列化 Map<String, Object> 字段

我有一个具有这种结构的用户对象:classUser{privateStringid;privateStringname;privateMapproperties;//GETTERS&SETTERS}我有一个具有这种结构的JSON字符串:{"user":{"id:"123456789","name:"azerty","emailHash":"123456789",//notusedinUserclass"properties":{"p1":1,"p2":"test","p3":[1,2,3,4],"p4":{etc...}}}}属性的键是字符串,属性的值可以是字符串、整数、数组、bool

java - 使用 Gson pretty-print JSON 字符串的问题

有人可以提出为什么会这样吗...我有一些代码可以漂亮地打印一些JSON。为此,我使用了Gsonlibrary。.然而,虽然这样通常效果很好,但有些字符似乎无法正确显示。这是演示问题的一段简单代码://CreatingtheJSONobject,andgettingasString:JsonObjectjson=newJsonObject();JsonObjectinner=newJsonObject();inner.addProperty("value","xpath('hello')");json.add("root",inner);System.out.println(json.t

java - 让 Gson 对错误的类型抛出异常

我在我的项目中使用Gson将JSON字符串反序列化为Java对象。如果我发出请求,我希望服务器能给出定义明确的响应。服务器将返回我期望的明确定义的响应,或者它会返回一个(同样定义的)错误对象。为了清楚起见:假设我有一个像这样的简单对象:classDummy{privateStringfoo;privateintbar;}和这样的错误对象:classErrorHolder{privateRequestErrorerror;}classRequestError{privateStringpublicMsg;privateStringmsg;}如果我得到像这样的服务器响应{"foo":"He

java - 向 GSON 注册多个适配器不起作用

我在使用GsonBuilder注册多个类型适配器时遇到问题。似乎只有一个会开火,而从不考虑第二个。如果我单独对每一个进行处理,它似乎工作正常。但我需要他们与两者一起工作,似乎我做错了什么。另外,我目前正在使用GSONv2.2.4。Zip对象简单形式:publicclassZip{privateStringzipCode;privateStringcity;privateStringstate;publicZip(){}}ZipSerializer:publicclassZipSerializerimplementsJsonSerializer{@OverridepublicJsonEl

java - Gson 类型适配器与自定义解串器

下面的示例显示了一个包含抽象类(成员)集合的类(俱乐部)。我对是否需要TypeAdapter或JsonDeserializer来使反序列化正常工作感到困惑。序列化在没有任何帮助的情况下工作得很好,但反序列化会抛出异常。为了说明,我构建了以下“克隆”测试。如果有人能展示一个工作示例,我将不胜感激。头等舱packagegson.test;importjava.util.ArrayList;importcom.google.gson.Gson;publicclassClub{publicstaticvoidmain(String[]args){//SetupaClubwith2members

java - Gson - 根据字段值反序列化为特定对象类型

我想根据type字段值将json对象反序列化为特定类型的对象(使用Gson库),例如:[{"type":"type1","id":"131481204101","url":"http://something.com","name":"BLAHBLAH","icon":"SOME_STRING","price":"FREE","backgroundUrl":"SOME_STRING"},{....}]因此type字段将具有不同(但已知)的值。基于该值,我需要将该json对象反序列化为适当的模型对象,例如:Type1Model、Type2Model等。我知道我可以在反序列化之前轻松地做到这

java - 使用 gson 循环 Json 数组

我正在尝试解析一个jsonObject但似乎无法得到它,这就是我得到的。json=(jsondata)JsonParserparser=newJsonParser();JsonObjectrootObj=parser.parse(json).getAsJsonObject();JsonObjectpaymentsObject=rootObj.getAsJsonObject("payments");for(JsonObjectpa:paymentsObject){StringdateEntered=pa.getAsJsonObject().get("date_entered").toSt

Java GSON : Getting the list of all keys under a JSONObject

我已经将GSON作为Java中的JSON解析器,但key并不总是相同的。例如。我有以下JSON:{"TheObjectIalreadyknow":{"key1":"value1","key2":"value2","AnotherObject":{"anotherKey1":"anotherValue1","anotherKey2":"anotherValue2"}}我已经得到了JSONObject“我已经知道的对象”。现在我需要获取此对象的所有JSONElements,这将是“Key1”、“Key2”和“AnotherObject”。提前致谢。编辑:输出应该是一个字符串数组,其中包含J